<!--* po1.xsd, from http://www.w3.org/TR/xmlschema-0/#UnqualLocals *-->
<!--* Retrieved 2002-12-20 *-->
<!--* Expanded to be a complete schema by MSM *-->
<!--* 2004-12-27 : correct typo, qualify reference to comment in item *-->

<schema xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:po="http://www.example.com/PO1"
        targetNamespace="http://www.example.com/PO1"
        elementFormDefault="unqualified"
        attributeFormDefault="unqualified">

 <element name="PurchaseOrder" type="po:PurchaseOrderType"/>
 <element name="Comment"       type="string"/>

 <complexType name="PurchaseOrderType">
  <sequence>
   <element name="ShipTo"    type="po:USAddress"/>
   <element name="BillTo"    type="po:USAddress"/>
   <element ref="po:Comment" minOccurs="0"/>
   <!-- etc. -->
   <element name="Items"  type="po:Items"/>
   <!-- ... end expansion. -->
  </sequence>
  <!-- etc. -->
  <attribute name="OrderDate" type="date"/>
  <!-- ... end expansion. -->
 </complexType>

 <complexType name="USAddress">
  <sequence>
   <element name="Name"   type="string"/>
   <element name="Street" type="string"/>
   <!-- etc. -->
   <element name="City"   type="string"/>
   <element name="State"  type="string"/>
   <element name="Zip"    type="decimal"/>
  </sequence>
  <attribute name="Country" type="NMTOKEN"
     fixed="US"/>
  <!-- ... end expansion. -->
 </complexType>

 <!-- etc. -->
 <complexType name="Items">
  <sequence>
   <element name="Item" minOccurs="0" maxOccurs="unbounded">
    <complexType>
     <sequence>
      <element name="ProductName" type="string"/>
      <element name="Quantity">
       <simpleType>
        <restriction base="positiveInteger">
         <maxExclusive value="100"/>
        </restriction>
       </simpleType>
      </element>
      <element name="USPrice"  type="decimal"/>
      <element ref="po:Comment"   minOccurs="0"/>
      <element name="ShipDate" type="date" minOccurs="0"/>
     </sequence>
     <attribute name="PartNum" type="po:SKU" use="required"/>
    </complexType>
   </element>
  </sequence>
 </complexType>

 <!-- Stock Keeping Unit, a code for identifying products -->
 <simpleType name="SKU">
  <restriction base="string">
   <pattern value="\d{3}-[A-Z]{2}"/>
  </restriction>
 </simpleType>
 <!-- ... end expansion. -->

</schema>

